<!-- 
    1. TypeScript是javascript的一个超集，javascript是一个弱类型语言，任何一个类型的变量都可以通过var来声明，对变量类型是没有强调的，这样会导致开发过程中的不规范。 Javascript不像后端那样规定变量、类型、方法、类等
    2. TS就可以来束缚这个问题，TS的出现来解决JS弱类型的问题
      主要提供了类型系统和对ES6的支持，它可以编译成纯JavaScript，编译出来的代码可以运行到任何浏览器上
      TS由微软开发
    3. 为什么选择TS
      TypeScript增加了代码的可读性和可维护性(因为对变量做了类型限制，对后续代码检查减少了很多负担)
      TypeScript非常包容(可以编译成JS,编译过程中如果内部出现了错误，仍然可以编译并且不会影响代码运行)
      TypeScript拥有活跃的社区(很多第三方库都提供了对TS的支持)
      主流IDE都支持TS，包括代码补全，接口提示，跳转定义，重构等
    4. 如何在项目中使用TS
       全局安装： npm install -g typescript
       检查安装是否成功： tsc -v 
       创建文件：约定文件以.ts为后缀，编写react时，以.tsx为后缀   (在ts>01下创建一个hello.ts文件)
       编译文件：在01终端下： tsc hello.ts  (此时同级会自动生成hello.js文件)
       运行文件：node hello.js   (在ts>01下执行node hello.js命令
       修改.ts文件中的代码： 修改后执行tsc hello.ts 重新编译 (此时hello.js文件也会被更新)
    5. TypeScript原始数据类型：
       布尔值：boolean
       数字：number
       字符串：string
       null和undefined 是上面三个的子类型
       空值：void
       任意值：any(表示允许赋值为任意类型) 
           声明一个变量为任意值之后，对它的任何操作，返回的内容的类型都是任意值。
           变量如果在声明的时候，未赋值，那么它会被识别为任意值类型
       never：never类型表示的是那些永不存在的值的类型。
    6. TypeScript中的类型推论：
        var b = 1; // 此时推断b为数值类型
        给变量赋值初始值的时候，如果没有指定类型，根据初始值推论出响应的类型
       
-->